//
//  SKYNetwork.h
//  SkyonSDK
//
//  Created by 张二帅 on 2018/5/12.
//  Copyright © 2018年 Skyon. All rights reserved.
//

#import <Foundation/Foundation.h>



NS_ASSUME_NONNULL_BEGIN

/**
 网络请求类
 */
@interface SKYNetwork : NSObject
/** 超时时间，默认为60s */
@property (nonatomic, assign) NSTimeInterval timeoutTime;

- (id)init __attribute__((unavailable("请通过config或initWithBaseUrl:实例化")));
/**
 默认配置

 @return 返回该实例对象
 */
+ (instancetype)config;
/**
 设置请求baseUrl

 @param url baseUrl
 @return 返回network对象
 */
- (instancetype)initWithBaseUrl:(nullable NSURL *)url;
/**
 设置请求头

 @param value 请求头对应value
 @param field 请求头对应key
 */
- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;

/**
 设置cookie

 @param cookie 对应cookie对象
 */
- (void)addRequestCookie:(NSHTTPCookie *)cookie;

/**
 报文为‘|~|’ POST请求

 @param URLString 请求urlString
 @param packets 报文参数列表
 @param completionHandler 回调结果，系统版本>=iOS7，data为二进制格式
 */
- (void)POSTURLString:(NSString *)URLString
              packets:(nullable NSArray *)packets
    completionHandler:(nullable void(^)(NSData * _Nullable data,NSError * _Nullable error))completionHandler;

- (void)GETURLString:(NSString *)URLString
   completionHandler:(nullable void(^)(NSData * _Nullable data,NSError * _Nullable error))completionHandler;

@end
NS_ASSUME_NONNULL_END
